﻿using System;
using System.Collections.Generic;
using System.Windows;
using SoftSource.MVVMC;
using SoftSource.Timecard.Web.Data;
using SoftSource.Reactive;

namespace SoftSource.Timecard.ViewModelInterfaces
{
    public interface IUpdateReminderViewModelConsume : IDataViewModelConsume
    {
        #region Properties

        IObservableProperty<IEnumerable<LastEntry>> Entries { get; }

        #endregion Properties

        #region Methods

        Func<string, IEnumerable<int>, string, IObservable<Unit>> SendReminders { get; }
        Func<Action<IObservable<string>>, UIElement> CreateGetUserPasswordView { get; }

        #endregion Methods
    }
    public interface IUpdateReminderViewModelService : IDataViewModelService
    {
        #region Properties

        IEnumerable<LastEntry> EntrySource { get; set; }

        #endregion Properties

        #region Methods

        Func<string, IEnumerable<int>, string, IObservable<Unit>> SendReminders { get; set; }
        Func<Action<IObservable<string>>, UIElement> CreateGetUserPasswordView { get; set; }

        #endregion Methods
    }
    public interface IUpdateReminderViewModel : 
        IDataViewModel, 
        IUpdateReminderViewModelConsume, 
        IUpdateReminderViewModelService
    {
    }
}
